package cn.iocoder.devlop.module.annual.report.wsbaseinfo.controller.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import static cn.iocoder.devlop.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 外商投资基本信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class WsBaseinfoBaseVO {

    @Schema(description = "年报id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6319")

    private String ancheid;

    @Schema(description = "主体身份代码", example = "31597")
    private String pripid;

    @Schema(description = "年报时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime anchedate;

    @Schema(description = "年报年度")
    private String ancheyear;

    @Schema(description = "统一社会信用代码", example = "26014")
    private String uniscid;

    @Schema(description = "企业（机构）名称", example = "芋艿")
    private String entname;

    @Schema(description = "名称（英文）", example = "李四")
    private String enentname;

    @Schema(description = "经营范围")
    private String opscope;

    @Schema(description = "企业主体分类：1－企业　2－农合　3－个体　4－外商　5－常驻代表机构")
    private String entclassify;

    @Schema(description = "经营范围是否涉及国家规定实施的准入特别管理措施：否*0/是*1，如果为‘是’，则需要选择涉及的特别管理措施，需填写“行业许可情况”子表")
    private String specmanagement;

    @Schema(description = "特别管理措施：可多选,以“|”符号分隔，下同。")
    private String specmameasures;

    @Schema(description = "符合条件的港澳投资者、服务提供者经营范围是否涉及内地与香港、澳门《cepa服务贸易协议》《cepa投资协议》负面清单内的领域：否*0/是*1")
    private String listareas;

    @Schema(description = "是否为上市公司：否*0/是*1")
    private String listent;

    @Schema(description = "上市公司类型", example = "1")
    private String listtype;

    @Schema(description = "是否非上市的公众公司：否*0/是*1")
    private String publiccompany;

    @Schema(description = "是否为功能性机构：否*0/是*1")
    private String funinstitutions;

    @Schema(description = "功能性机构类型", example = "2")
    private String funinsttype;

    @Schema(description = "是否为研发中心：否*0/是*1")
    private String rdcent;

    @Schema(description = "是否是独立法人研发中心：否*0/是*1")
    private String leindependentrd;

    @Schema(description = "是否设立分公司研发中心：否*0/是*1(非独立法人研发中心时可填写)")
    private String subcomrdcent;

    @Schema(description = "设立分公司研发中心个数")
    private Integer subcomrdcentnum;

    @Schema(description = "是否内设独立研发部门：否*0/是*1(非独立法人研发中心时可填写)")
    private String indeprddiv;

    @Schema(description = "内设独立研发部门个数")
    private Integer rddivnum;

    @Schema(description = "外商投资性公司类型：1、外商投资的投资性公司|2、外商投资的创业投资公司|3、外商投资的以投资为主要业务的合伙企业|9、不涉及以上类型", example = "1")
    private String foreigninvtype;

    @Schema(description = "外籍职工（人）")
    private Long foreemnum;

    @Schema(description = "大学及以上学历（人）")
    private Long uniaboempnum;

    @Schema(description = "本年职工薪酬：单位：万元")
    private BigDecimal curyearsalary;

    @Schema(description = "境内知识产权行政部门授权（项）")
    private Long demdepauthnum;

    @Schema(description = "境外知识产权行政部门授权（项）")
    private Long outdepauthnum;

    @Schema(description = "营业成本：万元")
    private BigDecimal opcost;

    @Schema(description = "营业费用：单位：万元")
    private BigDecimal opexp;

    @Schema(description = "研发投入：单位：万元")
    private BigDecimal rdspending;

    @Schema(description = "增值税：单位：万元")
    private BigDecimal vat;

    @Schema(description = "消费税：单位：万元")
    private BigDecimal consumtax;

    @Schema(description = "营业税：单位：万元")
    private BigDecimal busitax;

    @Schema(description = "企业所得税：单位：万元")
    private BigDecimal entincometax;

    @Schema(description = "个人所得税：单位：万元")
    private BigDecimal indincometax;

    @Schema(description = "关税：单位：万元")
    private BigDecimal tariffs;

    @Schema(description = "外方股东享有的净利润：单位：万元")
    private BigDecimal fornetprofit;

    @Schema(description = "分配外方股东的利润：单位：万元")
    private BigDecimal allotforprofits;

    @Schema(description = "汇往外方股东的利润：单位：万元")
    private BigDecimal remitforprofits;

    @Schema(description = "外方股东利润转投资：单位：万元")
    private BigDecimal forproftoinv;

    @Schema(description = "转增本企业注册资本：单位：万元")
    private BigDecimal increaseregcap;

    @Schema(description = "转投其他企业：单位：万元")
    private BigDecimal transothent;

    @Schema(description = "本年外方股东贷款借款：万美元")
    private BigDecimal forloanfloatation;

    @Schema(description = "本年外方股东贷款还款：万美元")
    private BigDecimal forloanrepayment;

    @Schema(description = "本企业对境外投资者的债务合计：单位：万元")
    private BigDecimal liabilitiestotal;

    @Schema(description = "本企业在境外投资者的存款合计：单位：万元")
    private BigDecimal depositam;

    @Schema(description = "本企业对境外投资者的债权合计：单位：万元")
    private BigDecimal credrighttotal;

    @Schema(description = "是否享受国家规定的进口设备减免税：否*0/是*1。")
    private String imeqduty;

    @Schema(description = "项目性质及适用产业政策条目-国家鼓励外商投资的产业：仅公司填报。当“是否享受国家规定的进口设备减免税”为“是”时，此三项中至少需要选择一项，可多选。")
    private String forinvindustry;

    @Schema(description = "项目性质及适用产业政策条目-中西部地区外商投资优势产业：仅公司填报。当“是否享受国家规定的进口设备减免税”为“是”时，此三项中至少需要选择一项，可多选。")
    private String cenwesforinvind;

    @Schema(description = "项目性质及适用产业政策条目-其他 （研发中心）：仅公司填报。当“是否享受国家规定的进口设备减免税”为“是”时，此三项中至少需要选择一项，可多选。")
    private String isOtherInd;

    @Schema(description = "国家鼓励外商投资的产业：可多选，以“|”分隔")
    private String forinvindustryCode;

    @Schema(description = "中西部地区外商投资优势产业：可多选，以“|”分隔")
    private String cenwesforinvindCode;

    @Schema(description = "流动资产：资产总额（其中），单位：万元")
    private BigDecimal currentassets;

    @Schema(description = "其他应收款：流动资产（其中），单位：万元")
    private BigDecimal othereceivables;

    @Schema(description = "非流动资产：资产总额（其中），单位：万元")
    private BigDecimal noncurrentassets;

    @Schema(description = "长期股权投资：非流动资产（其中），单位：万元")
    private BigDecimal loequinv;

    @Schema(description = "固定资产：非流动资产（其中），单位：万元")
    private BigDecimal netfixassets;

    @Schema(description = "无形资产：非流动资产（其中），单位：万元")
    private BigDecimal intass;

    @Schema(description = "流动负债：负债总额（其中），单位：万元")
    private BigDecimal currentliabilities;

    @Schema(description = "应付外方股利：流动负债（其中），单位：万元")
    private BigDecimal fordividend;

    @Schema(description = "其他应付款：流动负债（其中），单位：万元")
    private BigDecimal otherpayables;

    @Schema(description = "非流动负债：负债总额（其中），单位：万元")
    private BigDecimal noncurrentliabilities;

    @Schema(description = "所有者权益实收资本：所有者权益合计（其中），单位：万元")
    private BigDecimal reccap;

    @Schema(description = "所有者权益资本公积：所有者权益合计（其中），单位：万元")
    private BigDecimal capre;

    @Schema(description = "所有者权益盈余公积：所有者权益合计（其中），单位：万元")
    private BigDecimal surpres;

    @Schema(description = "所有者权益未分配利润：所有者权益合计（其中），单位：万元")
    private BigDecimal undisprofit;

    @Schema(description = "所有者权益其他：所有者权益合计（其中），单位：万元")
    private BigDecimal other;

    @Schema(description = "所有者权益归属于外方股东的权益：所有者权益合计（其中），单位：万元")
    private BigDecimal invsequity;

    @Schema(description = "归属于外方股东实收资本：归属于外方股东的权益（其中），单位：万元")
    private BigDecimal forreccap;

    @Schema(description = "归属于外方股东资本公积：归属于外方股东的权益（其中），单位：万元")
    private BigDecimal forcapre;

    @Schema(description = "归属于外方股东盈余公积：归属于外方股东的权益（其中），单位：万元")
    private BigDecimal forsurpres;

    @Schema(description = "归属于外方股东未分配利润：归属于外方股东的权益（其中），单位：万元")
    private BigDecimal forundisprofit;

    @Schema(description = "归属于外方股东其他：归属于外方股东的权益（其中），单位：万元")
    private BigDecimal forother;

    @Schema(description = "子公司应付外方股利：万元")
    private BigDecimal subcomfordividend;

    @Schema(description = "子公司归属于外方股东的权益：万元")
    private BigDecimal subcominvsequity;

    @Schema(description = "子公司归属外方实收资本：子公司归属外方股东的权益（其中），单位：万元")
    private BigDecimal subcomforreccap;

    @Schema(description = "子公司归属外方资本公积：子公司归属外方股东的权益（其中），单位：万元")
    private BigDecimal subcomforcapre;

    @Schema(description = "子公司归属外方盈余公积：子公司归属外方股东的权益（其中），单位：万元")
    private BigDecimal subcomforsurpres;

    @Schema(description = "子公司归属外方未分配利润：子公司归属外方股东的权益（其中），单位：万元")
    private BigDecimal subcomforundisprofit;

    @Schema(description = "子公司归属外方其他：子公司归属外方股东的权益（其中），单位：万元")
    private BigDecimal subcomforother;

}
